/**
 * 
 */
package com.enjoyor.soa.traffic.api.service.dubbo.ovms;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.ovms.LogUserDto;
import com.enjoyor.soa.traffic.api.dto.ovms.ViolationInfoDto;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 临时数据
 * 
 * @author ly
 *
 */
public interface DubboViolationTempService {

	/**
	 * 录入预处理，删除临时数据 --9、审核 人工录入 recordViolationFromTemp
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @return
	 */
	public ResultPojo recordViolationFromTemp(String token, String systemkey, LogUserDto logUser, String violationid);

	/**
	 * 查询保存的违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param collect_source
	 * @param violation_time_start
	 * @param violation_time_end
	 * @param cross_code
	 * @return
	 */
	public ResultPojo getViolationTemp(String token, String systemkey, LogUserDto logUser, String collect_source,
			String violation_time_start, String violation_time_end, String cross_code, String record_person);

	/**
	 * 查询包含图片的数据，包括保存的违法数据，合并数据，图片
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param collect_source
	 * @param violation_time_start
	 * @param violation_time_end
	 * @param cross_code
	 * @return
	 */
	public ResultPojo getViolationTempAnnex(String token, String systemkey, LogUserDto logUser, String collect_source,
			String violation_time_start, String violation_time_end, String cross_code, String record_person);

	/**
	 * 新增图片
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param annex_type,图片“ANNEXTYPE01”，视频“ANNEXTYPE02”
	 * @param annex_url
	 * @param record_person
	 * @param record_time
	 * @param device_id
	 * @param collect_source
	 * @param speed
	 * @param max_speed
	 * @param increase_speed
	 * @param violation_status
	 *            显示-VIOTEMPSTATUS04 不显示-VIOTEMPSTATUS02
	 * @return
	 */
	public ResultPojo insertViolationTempAnnex(String token, String systemkey, LogUserDto logUser, String annex_type,
			String annex_url, String record_person, String record_time, String device_id, String collect_source,
			int speed, int max_speed, int increase_speed, String violation_status);

	/**
	 * 更新临时违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param dto
	 * @return
	 */
	public ResultPojo updateViolationTemp(String token, String systemkey, LogUserDto logUser, ViolationInfoDto dto);

	/**
	 * 删除临时违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @return
	 */
	public ResultPojo deleteViolationTemp(String token, String systemkey, LogUserDto logUser,
			List<String> violationids);

	/**
	 * 标记删除临时违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @param is_del
	 *            1为标记删除，0或者空为取消删除
	 * @return
	 */
	public ResultPojo signDeleteViolationTemp(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, int is_del);

	/**
	 * 更新临时数据状态
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationids
	 * @param violation_status
	 * @return
	 */
	public ResultPojo updateViolationTempStatus(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, String violation_status);

	/**
	 * 查询未关联违法的图片，空牌车
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param record_person
	 * @return
	 */
	public ResultPojo getViolationTempVioNull(String token, String systemkey, LogUserDto logUser, String record_person);

	/**
	 * 合并违法附件
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param pic_id1
	 * @param pic_id2
	 * @param pic_id3
	 * @param video_id
	 * @return
	 */
	public ResultPojo mergeViolationTempAnnex(String token, String systemkey, LogUserDto logUser, String pic_id1,
			String pic_id2, String pic_id3, String video_id);

	/**
	 * 撤销合并违法附件 3、撤销合并 出入violation_temp_annex，删除violation_temp
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationId
	 * @return
	 */
	public ResultPojo CancelMergeAnnex(String token, String systemkey, LogUserDto logUser, List<String> violationIds);

	/**
	 * 删除违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @return
	 */
	public ResultPojo realDeleteViolationCache(String token, String systemkey, LogUserDto logUser,
			List<String> violationids);

	/**
	 * 标记删除违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @param is_del
	 *            1为标记删除，0或者空为取消删除
	 * @return
	 */
	public ResultPojo signDeleteViolationCache(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, int is_del);

	/**
	 * 更新数据状态
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationids
	 * @param violation_status
	 * @return
	 */
	public ResultPojo updateViolationCacheStatus(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, String violation_status);

	/**
	 * 更新数据内容
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param dto
	 * @return
	 */
	public ResultPojo updateViolationCacheTemp(String token, String systemkey, LogUserDto logUser,
			ViolationInfoDto dto);

	/**
	 * 删除违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @return
	 */
	public ResultPojo realDeleteViolationDeal(String token, String systemkey, LogUserDto logUser,
			List<String> violationids);

	/**
	 * 标记删除违法数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationid
	 * @param is_del
	 *            1为标记删除，0或者空为取消删除
	 * @return
	 */
	public ResultPojo signDeleteViolationDeal(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, int is_del);

	/**
	 * 更新数据状态
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violationids
	 * @param violation_status
	 * @return
	 */
	public ResultPojo updateViolationDealStatus(String token, String systemkey, LogUserDto logUser,
			List<String> violationids, String violation_status);

	/**
	 * 更新数据内容
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param dto
	 * @return
	 */
	public ResultPojo updateViolationDealTemp(String token, String systemkey, LogUserDto logUser, ViolationInfoDto dto);

}
